#ifndef __CHRONOMETER_INTERFACE_HEADER__
#define __CHRONOMETER_INTERFACE_HEADER__


//! Chronomerter class for time measuring
class Chronometer
{
public:
	// Constructor & Destructor
	Chronometer();
	virtual ~Chronometer(){};

	void Reset(); // resets the timer
	void Start(); // starts the timer
	void Stop();  // stop (or pause) the timer
	void Advance(); // advance the timer by 0.1 seconds
	double GetAbsoluteTime(); // get the absolute system time
	double GetTime(); // get the current time
	double GetElapsedTime(); // get the time that elapsed between GetElapsedTime() calls
	bool IsStopped() { return m_bTimerStopped; } // returns true if timer stopped

protected:
	bool	m_bUsingQPF;
	int64 	m_llQPFTicksPerSec;
	bool	m_bTimerStopped;
	int64 	m_llStopTime;
	int64 	m_llLastElapsedTime;
	int64 	m_llBaseTime;

};

#endif
